package bid.yanhj.yanhaijiang.baseadapter;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

/**
 * 1 初始化数据
 * 2 创建适配器
 * 3 配置getView方法
 * 4 在activity初始化并绑定适配器
 *
 * viewHolder
 * 1 一般写Adapter的内部类
 * 2 只在Adapter中的getView方法中使用，用在保存需要改变值得组件；
 * 将ViewHolder整个对象作为tag属性绑定到getView返回的行布局View中
 * 3 ViewHolder作用主要是对Adapter的优化，使行布局组件复用，以提升ListView滚动性能，故如果需要对
 * 特殊的position下标进行操作时，可以将position作为ViewHolder中的一个属性保存起来
 *
 */
public class MainActivity extends AppCompatActivity {

    private ListView mainLv;

    MainAdapter mainAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mainLv = this.<ListView>findViewById(R.id.main_lv);

        //  初始化数据
        List<Person> persons = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            Person person = new Person(R.mipmap.ic_launcher, "name-" + i);
            persons.add(person);
        }

        // 数据显示完后
        mainAdapter = new MainAdapter(persons);
        mainLv.setAdapter(mainAdapter);

        // 点击事件
        mainLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            /**
             *
             * @param parent
             * @param view
             * @param position
             * @param id
             */
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "点击位置" + position, Toast.LENGTH_SHORT)
                        .show();
            }
        });

        // 长按
        mainLv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            /**
             *
             * @param parent
             * @param view
             * @param position
             * @param id
             * @return
             */
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "长按的是" + position, Toast.LENGTH_SHORT).show();
                // false 不消耗
                // 删除
                mainAdapter.deletePos(position);
                return true;
            }
        });
    }
}
